home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks97 / WarriorsProgress.sit / Warrior’s Progress / source code / Source / Libraries / Views / Sizeable.cp < prev    next >
Text File  |  1997-06-28  |  2KB  |  109 lines

  1. // Sizeable.cp
  2.  
  3. #ifndef Sizeable_h
  4. #include "Sizeable.h"
  5. #endif
  6. #ifndef MinMax_h
  7. #include "MinMax.h"
  8. #endif
  9. #ifndef Assert_h
  10. #include "Assert.h"
  11. #endif
  12.  
  13. const Sizeable Sizeable::empty;
  14.  
  15. uint16 Sizeable::MinimumWidth() const
  16.   {
  17.     return 0;
  18.   }
  19.  
  20. uint16 Sizeable::MinimumHeight() const
  21.   {
  22.     return 0;
  23.   }
  24.  
  25. PointObject Sizeable::MinimumSize() const
  26.   {
  27.     uint16 width = MinimumWidth();
  28.     uint16 height = MinimumHeight();
  29.     
  30.     Assert( width <= maxint16 );
  31.     Assert( height <= maxint16 );
  32.     
  33.     return PointObject( width, height );
  34.   }
  35.  
  36. uint16 Sizeable::MaximumWidth() const
  37.   {
  38.     return maxuint16;
  39.   }
  40.  
  41. uint16 Sizeable::MaximumHeight() const
  42.   {
  43.     return maxuint16;
  44.   }
  45.  
  46. PointObject Sizeable::MaximumSize() const
  47.   {
  48.     return PointObject( Min( MaximumWidth(), uint16(maxint16) ),
  49.                               Min( MaximumHeight(), uint16(maxint16) ) );
  50.   }
  51.  
  52. uint16 Sizeable::ReasonableWidth() const
  53.   {
  54.     return MinimumWidth();
  55.   }
  56.  
  57. uint16 Sizeable::ReasonableHeight() const
  58.   {
  59.     return MinimumHeight();
  60.   }
  61.  
  62. PointObject Sizeable::ReasonableSize() const
  63.   {
  64.     uint16 width = ReasonableWidth();
  65.     uint16 height = ReasonableHeight();
  66.     
  67.     Assert( width <= maxint16 );
  68.     Assert( height <= maxint16 );
  69.     
  70.     return PointObject( width, height );
  71.   }
  72.  
  73. uint16 Sizeable::BestWidth() const
  74.   {
  75.     return MaximumWidth();
  76.   }
  77.  
  78. uint16 Sizeable::BestHeight() const
  79.   {
  80.     return MaximumHeight();
  81.   }
  82.  
  83. PointObject Sizeable::BestSize() const
  84.   {
  85.     return PointObject( Min( BestWidth(), uint16(maxint16) ),
  86.                               Min( BestHeight(), uint16(maxint16) ) );
  87.   }
  88.  
  89. uint16 Sizeable::BestWidth( uint16 bound ) const
  90.   {
  91.     return Min( BestWidth(), bound );
  92.   }
  93.  
  94. uint16 Sizeable::BestHeight( uint16 bound ) const
  95.   {
  96.     return Min( BestHeight(), bound );
  97.   }
  98.  
  99. PointObject Sizeable::BestSize( PointObject bound ) const
  100.   {
  101.     uint16 width = BestWidth( bound.h );
  102.     uint16 height = BestHeight( bound.v );
  103.     
  104.     Assert( width <= bound.h );
  105.     Assert( height <= bound.v );
  106.     
  107.     return PointObject( width, height );
  108.   }
  109.